package com.example.zyl.api.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.zyl.api.entity.SysDatabase;
import com.example.zyl.api.entity.dto.SysDatabaseDto;
import com.example.zyl.api.mapper.SysDatabaseMapper;
import com.example.zyl.api.service.SysDatabaseService;
import com.example.zyl.common.query.page.PageParam;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;


/**
 * 数据库信息表(SysDatabase)表服务实现类
 *
 * @author zyl
 * @since 2024-12-05 11:39:22
 */
@Service("sysDatabaseService")
@RequiredArgsConstructor
public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDatabase> implements SysDatabaseService {

    private final SysDatabaseMapper sysDatabaseMapper;


    @Override
    public SysDatabase queryById(Long id) {
        return this.sysDatabaseMapper.queryById(id);
    }

    /**
     * 分页查询
     *
     * @param pageParams 筛选条件
     * @return 查询结果
     */
    @Override
    public Page<SysDatabase> queryByPage(PageParam<SysDatabase, SysDatabaseDto> pageParams) {
        //获取查询条件
        SysDatabaseDto tableDto = pageParams.getParam();
        //获取分页信息
        Page<SysDatabase> page = pageParams.getPage();
        //构建查询条件
        QueryWrapper<SysDatabase> wrapper = tableDto.defaultWrapper();
        //执行查询

        return sysDatabaseMapper.selectPage(page, wrapper);
    }

    /**
     * 新增数据
     *
     * @param sysDatabase 实例对象
     * @return 实例对象
     */
    @Override
    public SysDatabase insert(SysDatabase sysDatabase) {
        this.sysDatabaseMapper.insert(sysDatabase);
        return sysDatabase;
    }

    /**
     * 修改数据
     *
     * @param sysDatabase 实例对象
     * @return 实例对象
     */
    @Override
    public SysDatabase update(SysDatabase sysDatabase) {
        this.sysDatabaseMapper.update(sysDatabase, Wrappers.emptyWrapper());
        return this.queryById(sysDatabase.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Long id) {
        return this.sysDatabaseMapper.deleteById(id) > 0;
    }
}
